<script>
  // 获取加密 Schema 码

        // https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/url-scheme/generateScheme.html

          /*
              一、接口说明

                        1、接口英文名

                                generateScheme

                        2、功能描述

                                该接口用于获取小程序 schema 码，适用于短信、邮件、外部网页、微信内等拉起小程序的业务场景。

                                目前仅针对国内非个人主体的小程序开放。

                                详见：  获取 URL schema (https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-scheme.html)

                        3、注意事项

                                ★、调用上限

                                        ①、生成端：每天生成 URL Scheme（加密 明文） 和 URL Link 的总数量上限为50万

                                        ②、打开端：每天通过 URL Scheme（加密 明文） 和 URL Link 打开小程序的总次数上限为300万

                                        ③、自 2023 年 12 月 19 日起，取消 URL Scheme 一人一链的限制，支持同一条连接被多名用户访问。
                                        
                                            详细调整说明可见《URL Scheme 和 URL Link优化公告》  (https://developers.weixin.qq.com/community/develop/doc/00024e32cbc36055c0c0a34b066401)


                                ★、其他注意事项

                                         ①、加密 URL Scheme 支持开发者自行在链接后面拼接 query 参数，
                                         
                                                详见获取 URL Scheme (https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-scheme.html)

                                         ②、微信内的网页如需打开小程序请使用 "微信开放标签--小程序跳转按钮"，无公众号也可以直接使用小程序身份开发网页并免鉴权跳转小程序，

                                                见云开发静态网站跳转小程序。
                                                
                                                符合开放范围的小程序可以下发支持打开小程序的短信。

                                         ③、该功能基本覆盖当前用户正在使用的微信版本，开发者无需进行低版本兼容。

                                         ④、只能生成已发布的小程序的 URL Schema

                                         ⑤、通过URL  Schema 跳转到微信时，可能会触发系统弹框询问，若用户选择不跳转，则无法打开小程序。

                                               请开发票这妥善处理用户选择不跳转的场景。

                                         ⑥、部分浏览器会限制打开网页直接跳转，可参考示例网页设置跳转按钮。
          */

          /*
                二、调用方式

                        1、Https调用

                                POST https://api.weixin.qq.com/wxa/generatescheme?access_token=ACCESS_TOKEN


                        2、云调用

                                ①、出入参和HTTPS调用相同，调用方式可查看云调用说明文档 (https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/openapi/openapi.html)

                                ②、接口方法为: openapi.urlscheme.generate


                        3、第三方调用

                                ①、调用方式以及出入参和HTTPS相同，仅是调用的token不同

                                ②、该接口所属的权限集id为：88、115

                                ③、服务商获得其中之一权限集授权后，可通过使用authorizer_access_token代商家进行调用


                        4、请求参数

                                                属性	          类型	      必填	                说明

                                        ①、access_token	string	      是	    接口调用凭证，该参数为 URL 参数，非 Body 参数。
                                                                                        使用getAccessToken 或者 authorizer_access_token

                                        ②、jump_wxa        object        否            跳转到的目标小程序信息

                                                                属性	     类型	      必填	        说明

                                                                <1>、path          string            否            通过 scheme 码进入的小程序页面路径，必须是已经发布的小程序存在的页面，
                                                                                                                不可携带 query。path 为空时会跳转小程序主页。

                                                                <2>、query         string            否            通过 scheme 码进入小程序时的 query，最大1024个字符，只支持数字，
                                                                                                                大小写英文以及部分特殊字符：!#$&'()*+,/:;=?@-._~%` 

                                                                <3>、env_version   string	     否            默认值"release"。要打开的小程序版本。正式版为"release"，体验版为"trial"，开发版为"develop"，仅在微信外打开时生效。

                                        ③、expire_time	number	      否	    到期失效的 scheme 码的失效时间，为 Unix 时间戳。
                                                                                        生成的到期失效 scheme 码在该时间前有效。
                                                                                        最长有效期为30天。is_expire 为 true 且 expire_type 为 0 时必填

                                        ④、pire_type	number	      否	     默认值0，到期失效的 scheme 码失效类型，失效时间：0，失效间隔天数：1

                                        ⑤、expire_interval number	      否	     到期失效的 scheme 码的失效间隔天数。生成的到期失效 scheme 码在该间隔时间到达前有效。
                                                                                        最长间隔天数为30天。is_expire 为 true 且 expire_type 为 1 时必填   
                                                                                        
                        5、返回参数

                                           属性	        类型	          说明

                                        ①、errcode      number	        错误码

                                        ②、errmsg	string	        错误信息

                                        ③、openlink	string	        生成的小程序 scheme 码
          */

          /*
                三、调用示例

                         1、请求数据示例1

                                    {
                                        "jump_wxa":
                                        {
                                                "path": "/pages/publishHomework/publishHomework",
                                                "query": "",
                                                "env_version": "release"
                                        },
                                        "is_expire":true,
                                        "expire_type":1,
                                        "expire_interval":1
                                    }

                                返回数据示例

                                    {
                                        "errcode": 0,
                                        "errmsg": "ok",
                                        "openlink": Scheme,
                                   }

                        
                        2、请求数据示例2

                                        const cloud = require('wx-server-sdk')
                                        cloud.init({
                                                env: cloud.DYNAMIC_CURRENT_ENV,
                                        })
                                        exports.main = async (event, context) => {
                                                try {
                                                        const result = await cloud.openapi.urlscheme.generate({
                                                                "jumpWxa": {
                                                                "path": '/pages/publishHomework/publishHomework',
                                                                "query": ''
                                                                },
                                                                "isExpire": true,
                                                                "expireTime": 1606737600
                                                })
                                                return result
                                                } catch (err) {
                                                        return err
                                                }
                                        }
                                
                                   返回数据示例：

                                        {
                                                "errcode": 0,
                                                "errmsg": "ok",
                                                "openlink": Scheme,
                                        }

                        3、错误码
                                  
                                (页面最底部)
                                https://developers.weixin.qq.com/miniprogram/dev/OpenApiDoc/qrcode-link/url-scheme/generateScheme.html
                                       
          */

</script>